C++赋值语句

梦想不会自己发光,真正闪耀的是那个为梦狂奔的你。献给知行的孩子们!(Eric.He著)


  本教程将从 C++ 赋值语句的核心概念、多种赋值形式(基础形式、嵌套形式、连续形式)到使用注意事项,全面拆解赋值语句的核心用法,帮助你掌握这一C++编程中最基础且高频的操作。

教程目录导航

一、C++ 赋值语句的核心概念

1.1 赋值语句的定义

C++ 中的赋值语句是通过 =(赋值运算符)将右侧表达式的计算结果赋给左侧变量的语句,是程序中修改变量值、传递数据的最基础方式。

赋值语句的本质是「将右侧的值写入左侧变量对应的内存空间」,它是一种操作语句(而非数学中的“等于”),执行后变量的原有值会被覆盖。

基础示例:


#include <iostream>
using namespace std;

int main() {
    int a;          // 定义整型变量a
    a = 10;         // 赋值语句:将常量10赋给变量a
    int b = a + 5;  // 赋值语句:将表达式a+5的结果(15)赋给变量b
    cout << "a = " << a << endl;  // 输出:a = 10
    cout << "b = " << b << endl;  // 输出:b = 15
    return 0;
}
            

1.2 赋值语句的核心规则

注意: 区分赋值运算符 = 和相等判断运算符 ==

二、C++ 赋值语句的常见形式

2.1 基础形式:变量 = 表达式

这是最常用的赋值形式,右侧可以是常量、变量、算术表达式、函数返回值等任意合法表达式,核心是将右侧结果赋给左侧变量。

语法格式:


变量名 = 表达式;
        

常见场景示例:


#include <iostream>
#include <string>
using namespace std;

// 自定义函数(返回int类型)
int getNum() {
    return 20;
}

int main() {
    // 场景1:常量赋值
    int num1 = 100;
    double pi = 3.1415926;
    string str = "Hello C++";
    
    // 场景2:变量赋值
    int num2 = num1;  // 将num1的值(100)赋给num2
    
    // 场景3:算术表达式赋值
    int num3 = num1 + num2 * 2;  // 100 + 200 = 300
    
    // 场景4:函数返回值赋值
    int num4 = getNum();  // 将函数返回值20赋给num4
    
    // 场景5:关系表达式赋值(结果为bool值,隐式转为int:true=1,false=0)
    int num5 = (num1 > 50);  // 100>50为true,num5=1
    
    // 输出结果
    cout << "num1 = " << num1 << endl;  // 100
    cout << "num2 = " << num2 << endl;  // 100
    cout << "num3 = " << num3 << endl;  // 300
    cout << "num4 = " << num4 << endl;  // 20
    cout << "num5 = " << num5 << endl;  // 1
    
    return 0;
}
        

2.2 嵌套形式:变量 = (变量 = 表达式)

嵌套赋值的核心是利用「赋值语句有返回值」的特性,将一个赋值表达式作为另一个赋值语句的右侧表达式。括号可省略(因赋值运算符右结合),但加括号可提升可读性。

执行逻辑:先执行括号内的赋值语句,将结果赋给内层变量,再将内层赋值语句的返回值(即内层变量的新值)赋给外层变量。

语法格式:


变量1 = (变量2 = 表达式);
        

示例:


#include <iostream>
using namespace std;

int main() {
    int a, b;
    
    // 嵌套赋值:先执行b = 20,再将b的新值(20)赋给a
    a = (b = 20);
    
    cout << "b = " << b << endl;  // 输出:b = 20
    cout << "a = " << a << endl;  // 输出:a = 20
    
    // 更复杂的嵌套:结合算术表达式
    int c, d;
    c = (d = 10 + 5) * 2;  // 先d=15,再c=15*2=30
    cout << "d = " << d << endl;  // 输出:d = 15
    cout << "c = " << c << endl;  // 输出:c = 30
    
    // 省略括号(赋值运算符右结合,效果等价)
    int e, f;
    e = f = 30;  // 等价于 e = (f = 30)
    cout << "f = " << f << endl;  // 输出:f = 30
    cout << "e = " << e << endl;  // 输出:e = 30
    
    return 0;
}
        

2.3 连续形式:变量 = 变量 = ... = 表达式

连续赋值是嵌套赋值的简化形式,本质是多层嵌套赋值的语法糖,赋值运算符遵循「右结合性」,即从右向左依次执行赋值。

适用场景:需将同一个值赋给多个变量时,简化代码书写。

语法格式:


变量1 = 变量2 = 变量3 = ... = 表达式;
        

示例:


#include <iostream>
using namespace std;

int main() {
    // 基础连续赋值:将0赋给a、b、c三个变量
    int a, b, c;
    a = b = c = 0;
    // 执行顺序:c=0 → b=c(0) → a=b(0)
    cout << "a = " << a << endl;  // 0
    cout << "b = " << b << endl;  // 0
    cout << "c = " << c << endl;  // 0
    
    // 连续赋值结合表达式
    int x, y, z;
    x = y = z = 5 * 4;  // 先z=20 → y=20 → x=20
    cout << "x = " << x << endl;  // 20
    cout << "y = " << y << endl;  // 20
    cout << "z = " << z << endl;  // 20
    
    // 连续赋值与嵌套结合
    int m, n, p;
    m = (n = 10) = p = 20;
    // 执行顺序:p=20 → n=10的返回值是10 → 将10赋给m(注意:(n=10)=20 是给n重新赋值为20)
    cout << "p = " << p << endl;  // 20
    cout << "n = " << n << endl;  // 20(被重新赋值)
    cout << "m = " << m << endl;  // 20
    
    return 0;
}
        

三、赋值语句的使用注意事项

四、总结

本教程从 C++ 赋值语句的概念、多种形式到注意事项,全面拆解了赋值语句的核心用法。掌握赋值语句的正确使用,是编写高效、正确C++代码的第一步。


返回顶部